8
תגובות

למה הלולאה לא רצה?

פתח soogo ,
למה הלולאה לא רצה?

$query = mysql_query("SELECT * FROM table WHERE Side = 'Right'");
                print '<ul class="right">';
                while ($array = mysql_fetch_assoc($query))
                {
                    $c1 ++;
                    print $c1;  
                }

                print '</ul>';

8 תשובות

avatar ענה intval ב 27 לאוגוסט 2012 #

כיוון שהתנאי לא מתקיים.
בשביל להבין למה התנאי לא מתקיים ומה בכלל התנאי הזה, שהוא לא תנאי צריך אשקרה ללמוד משהו.
התשובה הקצרה תהיה - התוצאה של השאילתה ריקה. כלומר 0 שורות במסד נתונים נשלפו עם השאילתה הזאת.

avatar ענה Ben ב 27 לאוגוסט 2012 #

מה זה c1 ומה התפקיד שלו במחזמר היפה שלך ?

avatar ענה soogo ב 27 לאוגוסט 2012 #

יש לי שורות במסד שמקיימות את התנאי

c1 זה count התפקיד לבדוק מה קורה עם הלולאה

avatar ענה intval ב 27 לאוגוסט 2012 #

$query = mysql_query("SELECT * FROM table WHERE Side = 'Right'");
echo 'fetched ', mysql_num_rows($query), ' rows';

avatar ענה soogo ב 27 לאוגוסט 2012 #

זה לא הדפיס את השאילתא
הפלט: fetched rows

avatar ענה intval ב 27 לאוגוסט 2012 #

mysql_num_rows זה פונקציה שמחזירה את כמות השורות שנשלפו מהמסד.
במקרה שלך שום דבר לא נשלף מהמסד. זה אומר שהשאילתה כתובה לא נכון או שאין שורות שעונות לתנאי הזה.
תעתיק את השאילתה כפי שהיא לתוך phpMyAdmin ותראה מה אתה מקבל.

avatar ענה soogo ב 27 לאוגוסט 2012 #

קיבלתי תוצאות
אבל ב PHP עדיין לא

avatar ענה intval ב 28 לאוגוסט 2012 #

כנראה שהבעיה לא בחלק קוד שהבאת אלה איפשהו במקום אחר.
למשל בחיבור למסד.
תנסה לשנות את השאילת ל

$query = mysql_query("SELECT 1");

השאילתה הזאת בוודאות מחזירה שורה אחת.

בנוסף אתה צריך להפעיל הודעות על שגיאות ולראות שאין שגיאות כלשהן.
שים בתחילת תחילת הסקריפט את השורה
error_reporting(E_ALL);